package com.fortune.rainshine.system.service;

import java.util.List;
import java.util.Set;

import com.fortune.rainshine.common.PageResult;
import com.fortune.rainshine.common.exception.BusinessException;
import com.fortune.rainshine.common.exception.ParameterException;
import com.fortune.rainshinecommon.model.system.User;

public interface UserService {

    User getByUsername(String username);

    PageResult<User> list(int pageNum, int pageSize, boolean showDelete, String searchKey, String searchValue, User user);

    User getById(Integer userId);

    boolean add(User user,Integer merchantsId) throws BusinessException;

    boolean update(User user);

    boolean updateState(Integer userId, int state) throws ParameterException;

    boolean updatePsw(Integer userId, String username, String newPsw);

    boolean delete(Integer userId);

	/**
	 * @Title: getUsersByRole
	 * @Description: 根据角色获取用户
	 * @author zhangxin
	 * @phone 17561783855
	 * @date 2019年4月2日
	 */
	List<User> getUsersByRole(String string);

	/**
	 * @Title: getShopAssistant
	 * @Description: 根据店长id，获取店员信息
	 * @author zhangxin
	 * @param shopId 
	 * @param b 
	 * @phone 17561783855
	 * @date 2019年5月31日
	 */
	List<User> getShopAssistant(Integer userId, String shopId, boolean b);

	/**
	 * @Title: getByUserPhone
	 * @Description: 根据手机号获取用户
	 * @author zhangxin
	 * @phone 17561783855
	 * @date 2019年6月27日
	 */
	User getByUserPhone(String searchValue);

	/**
	 * @Title: getByNickname
	 * @Description: 这里用一句话描述这个方法的作用
	 * @author zhangxin
	 * @phone 17561783855
	 * @date 2019年6月27日
	 */
	User getByNickname(String username);

}
